home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Sample Code / Sample Editors⁄Viewers / Cappuccino / Source / CappuccinoPromise.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-11  |  2.4 KB  |  120 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        CappuccinoPromise.h
  3.  
  4.     Contains:    Classes to encapsulate promises.
  5.  
  6.     Written by:    Troy Gaul
  7.     
  8.     Copyright:    © 1995 by Apple Computer, Inc., all rights reserved.
  9. */
  10.  
  11. #ifndef _CAPPUCCINOPROMISE_
  12. #define _CAPPUCCINOPROMISE_
  13.  
  14. //------------------------------------------------------------------------------
  15. // Forward declarations
  16. //------------------------------------------------------------------------------
  17.  
  18. class CPromise;
  19. class Cappuccino;
  20. class CCappuccinoContent;
  21. class CList;
  22.  
  23. class Environment;
  24. class ODStorageUnit;
  25. class ODStorageUnitView;
  26.  
  27. //------------------------------------------------------------------------------
  28. // CPromiseSet
  29. //------------------------------------------------------------------------------
  30.  
  31. class CPromiseSet {
  32.  
  33. public:
  34.     
  35.     // -- Construction & destruction --
  36.     
  37.     CPromiseSet();
  38.     
  39.     virtual ~CPromiseSet();
  40.     
  41.     // -- Operations --
  42.     
  43.     virtual void Clear(Environment* ev);
  44.     
  45.     virtual void Add(Environment* ev, CPromise* promise);
  46.         
  47. protected:
  48.     
  49.     CList*            fPromiseList;
  50.     
  51. };
  52.  
  53. //------------------------------------------------------------------------------
  54. // CPromise
  55. //------------------------------------------------------------------------------
  56.  
  57. class CPromise {
  58.  
  59. public:
  60.     
  61.     virtual ~CPromise();
  62.     
  63.     // -- Promising --
  64.     
  65.     virtual void PromiseTo(Environment* ev, ODStorageUnit* su);
  66.     
  67.     virtual void Fulfill(Environment* ev, ODStorageUnitView* promiseSUView);
  68.     
  69.     // -- Utilities --
  70.     
  71.     ODByteArray* CreatePromiseData();
  72.     
  73.     static CPromise* GetPromiseFromByteArray(ODByteArray* promise);
  74.     
  75.     static CPromise* GetPromiseFromSUView(Environment* ev,
  76.                                           ODStorageUnitView* suView);
  77.     
  78. protected:
  79.     
  80.     CPromise(Cappuccino* part);
  81.     
  82. protected:
  83.     
  84.     Cappuccino*        fPart;
  85.     ODUpdateID        fUpdateID;
  86.     ODBoolean        fIsClipboardPromise;
  87.     ODBoolean        fFulfilled;
  88.     
  89. };
  90.  
  91. //------------------------------------------------------------------------------
  92. // CCappuccinoContentPromise
  93. //------------------------------------------------------------------------------
  94.  
  95. class CCappuccinoContentPromise : public CPromise {
  96.  
  97.     typedef CPromise Inherited;
  98.  
  99. public:
  100.     
  101.     CCappuccinoContentPromise(Cappuccino* part, CCappuccinoContent* content, 
  102.                               ODValueType valueType);
  103.     
  104.     virtual ~CCappuccinoContentPromise();
  105.  
  106.     // -- Promising --
  107.     
  108.     virtual void PromiseTo(Environment* ev, ODStorageUnit* su);
  109.     
  110.     virtual void Fulfill(Environment* ev, ODStorageUnitView* promiseSUView);
  111.  
  112. private:
  113.     
  114.     CCappuccinoContent*    fContent;
  115.     ODValueType            fValueType;
  116. };
  117.  
  118.  
  119. #endif
  120.